package com.leecode;

import com.test.TreeNode;

/**
 * 二叉树镜像
 */
public class Leet101 {
	public static void main(String[] args) {

	}
	public TreeNode mirrorTree(TreeNode root) {
		if (root==null) {
			return null;
		}
		if (root.left==null&&root.right==null) {
			return root;
		} else{
			TreeNode temp=root.left;
			root.left=root.right;
			root.right=temp;
			mirrorTree(root.left);
			mirrorTree(root.right);
		}
		return root;
	}

	/**
	 * 100%,93%
	 */
	public boolean isSymmetric2(TreeNode root) {
		if(root==null)return true;
//		if(root.left==null && root.right==null)return true;//这行代码优化到test方法的第一行(F),这行代码移到test方法的第一行避免bug(T)

		return test(root.left,root.right);
	}
	public boolean test(TreeNode l,TreeNode r){
		if(l==null && r==null)return true;
		if(l==null || r==null)return false;
		if(l.val!=r.val)return false;//avoid null first pls

		return test(l.left,r.right) && test(l.right,r.left);
	}
}
